6章 条件分岐
6.1 条件分岐のネストによる可読性低下
ストラテジパターン:辞書で分岐(6.6でも利用)
6.3 条件分岐の重複とネスト
ポリシーパターンで条件を部品化
部品になっているので再利用できる
(シグネチャを揃えた関数を渡してもいいかもしれない。強制できないが)
部品にした条件の集合で、条件分岐を表現する
ここで紹介されるポリシーパターンはストラテジーパターンと同じものらしい
6.4 型チェックで分岐しないこと
「interfaceを使う際は」というただし書きがついた主張と理解(型チェックでの分岐は使いうる)
「基本型を継承型に置き換えても問題なく動作しなければならない」(p.209)
プログラム内での置き換え
ここでいう基本型はinterfaceであり、継承型はinterface実装クラス (p.209)
instanceofで分岐するので、interfaceとinterface実装クラスが置き換えられなくなっている(instanceofの中)
脚注6に置き換えられないからinstanceofを使わざるを得なくなっているともある(ますます悪くなるフィードバックループ)
今の理解:instanceofを使っても「継承型は基本型と同じ振る舞いができなければならない」は満たしていそう。instanceofを使ったところで置き換えられなくなっている(TODO 精査)
6.5 interfaceの使いこなしが中級者への第一歩
言いたいことの1つと思われる
6.6 フラグ引数
具体的な分割の例
感想:フラグ引数の利用は前提というプラクティスもあるんだよな〜